home *** CD-ROM | disk | FTP | other *** search
/ Shareware Overload Trio 2 / Shareware Overload Trio Volume 2 (Chestnut CD-ROM).ISO / dir31 / sndblst3.zip / RWAVE.C < prev    next >
Text File  |  1993-10-25  |  3KB  |  103 lines

  1.  
  2. //------------------------------------------------------------------------------
  3. // Copyright (c) David Welch, 1993
  4. //------------------------------------------------------------------------------
  5. #include <stdio.h>
  6. #include <stdlib.h>
  7. #include <string.h>
  8.  
  9. #include "..\sb.h"
  10.  
  11. unsigned char ca;
  12. unsigned short ra;
  13. unsigned long la;
  14. FILE *fp;
  15. unsigned char gstring[80];
  16.  
  17. // for .WAV stuff
  18. unsigned long rID;
  19. unsigned long rLen;
  20. unsigned long wID;
  21. unsigned long fID;
  22. unsigned long fLen;
  23. unsigned long fNext;
  24. unsigned short wFormatTag;
  25. unsigned short nChannels;
  26. unsigned short nSamplesPerSec;
  27. unsigned short nAvgBytesPerSec;
  28. unsigned long dID;
  29. unsigned long dLen;
  30.  
  31. void main ( int argc, char *argv[] )
  32. {
  33.  
  34.     if(argc==1)
  35.     {
  36.         printf(".WAV file and sample rate not specified\n");
  37.         exit(1);
  38.     }
  39.     if(argc==2)
  40.     {
  41.         nSamplesPerSec=12000;
  42.         printf("Default sample rate of %u Hz will be used\n",nSamplesPerSec);
  43.     }
  44.     if(argc>=3)
  45.     {
  46.         nSamplesPerSec=atoi(argv[2]);
  47.         printf("Samples Per Second %u\n",nSamplesPerSec);
  48.     }
  49.  
  50.     strcpy(gstring,argv[1]);
  51.     strcat(gstring,".WAV");
  52.     if((fp=fopen(gstring,"wb"))==0)
  53.     {
  54.         strcpy(gstring,argv[1]);
  55.         if((fp=fopen(gstring,"wb"))==0)
  56.         {
  57.             printf("Error opening .WAV file [%s]\n",argv[1]);
  58.             exit(1);
  59.         }
  60.     }
  61.     printf("FILE: [%s]\n",gstring);
  62.     sbsetup();
  63.  
  64.     fLen=16;
  65.     wFormatTag=1;
  66.     nChannels=1;
  67.     nAvgBytesPerSec=0;
  68.     dLen=65000;
  69.     rLen=20+fLen+dLen;
  70.  
  71.     rID=0x46464952;
  72.     fwrite(&rID,1,4,fp);
  73.     fwrite(&rLen,1,4,fp);
  74.     wID=0x45564157;
  75.     fwrite(&wID,1,4,fp);
  76.     fID=0x20746D66;
  77.     fwrite(&fID,1,4,fp);
  78.     fwrite(&fLen,1,4,fp);
  79.     fwrite(&wFormatTag,1,2,fp);
  80.     fwrite(&nChannels,1,2,fp);
  81.     fwrite(&nSamplesPerSec,1,2,fp);
  82.     fwrite(&nAvgBytesPerSec,1,2,fp);
  83.     fwrite(&nSamplesPerSec,1,2,fp);
  84.     ra=0; fwrite(&ra,1,2,fp);
  85.     ra=1; fwrite(&ra,1,2,fp);
  86.     ra=8; fwrite(&ra,1,2,fp);
  87.     dID=0x61746164;
  88.     fwrite(&dID,1,4,fp);
  89.     fwrite(&dLen,1,4,fp);
  90.  
  91.     ca=256UL-(1000000UL/nSamplesPerSec);
  92.     printf("Time Constant %u\n",ca);
  93.     sbsettc(ca);
  94.     sbrec(dLen);
  95.     printf("Recording %lu samples\n",dLen);
  96.     while(1) if(dmacount()==0xFFFF) break;
  97.     fwrite(aligned,1,dLen,fp);
  98. }
  99. //------------------------------------------------------------------------------
  100. // Copyright (c) David Welch, 1993
  101. //------------------------------------------------------------------------------
  102.  
  103.